package mx.itesm.escenas;

import org.andengine.entity.sprite.ButtonSprite;
import org.andengine.input.touch.TouchEvent;

import mx.itesm.constants.ConstantesEscenas;
import mx.itesm.manejadores.ManejadorEscenas;

public class EscenaPausa extends EscenaBase {
	
	/*
	 * **************************************************************
	 *                                         Variables
	 * **************************************************************
	 */

	private static final int ORIGEN = ConstantesEscenas.ORIGEN;

	/*
	 * **************************************************************
	 *                                         Metodos
	 * **************************************************************
	 */
	
	@Override
	public void crearEscena() {
		attachChild(createSprite(ORIGEN, ORIGEN, manejadorRecursos.fondoPausaRegion, 
				mVerticesObjetos));
		
		// Crea el boton de Menu y lo agrega a la escena
		ButtonSprite botonMenu = new ButtonSprite(300, 160, 
				manejadorRecursos.botonMenuRegion, mVerticesObjetos) {

			// Se ejecuta cada vez que el usuario hace tap sobre el boton
			@Override
			public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
					float pTouchAreaLocalX, float pTouchAreaLocalY) {

				if (pSceneTouchEvent.isActionDown()) {
					ManejadorEscenas.getInstance().cargarEscenaMenu();
					ManejadorEscenas.getInstance().setEscena(TipoEscena.ESCENA_MENU);
					ManejadorEscenas.getInstance().descargarEscenaPausa();
				}
				return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX,
						pTouchAreaLocalY);
			}
		};
		
		// Crea el boton de continuar y lo agrega a la escena
		ButtonSprite botonReanudar = new ButtonSprite(500, 160,
				manejadorRecursos.botonReanudarRegion, mVerticesObjetos) {

			// Se ejecuta cada vez que el usuario hace tap sobre el boton
			@Override
			public boolean onAreaTouched(TouchEvent pSceneTouchEvent,
					float pTouchAreaLocalX, float pTouchAreaLocalY) {

				if (pSceneTouchEvent.isActionDown()) {
					ManejadorEscenas.getInstance().cargarEscenaMenu();
					ManejadorEscenas.getInstance().setEscena(TipoEscena.ESCENA_MENU);
					ManejadorEscenas.getInstance().descargarEscenaPausa();
				}
				return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX,
						pTouchAreaLocalY);
			}
		};
		
		this.registerTouchArea(botonMenu);
		this.attachChild(botonMenu);
		
		this.registerTouchArea(botonReanudar);
		this.attachChild(botonReanudar);
	}

	@Override
	public TipoEscena getTipoEscena() {
		return TipoEscena.ESCENA_PAUSA;
	}

	@Override
	public void removerEscena() {
		this.detachSelf();
		this.dispose();
	}

	@Override
	public void onBackKeyPressed() {
		ManejadorEscenas.getInstance().cargarEscenaMenu();
		ManejadorEscenas.getInstance().setEscena(TipoEscena.ESCENA_MENU);
		ManejadorEscenas.getInstance().descargarEscenaPausa();
	}
}